<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.12.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>NeuZephyr: D:/Users/Mgepahmge/Documents/C Program/NeuZephyr/include/NeuZephyr/OperationKernels.cuh Source File</title>
<link rel="icon" href="NZ_logo2.png" type="image/x-icon" />
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectlogo"><img alt="Logo" src="NZ_logo2.png"/></td>
  <td id="projectalign">
   <div id="projectname">NeuZephyr
   </div>
   <div id="projectbrief">Simple DL Framework</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.12.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
    </ul>
  </div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_d522931ffa1371640980b621734a4381.html">Users</a></li><li class="navelem"><a class="el" href="dir_a7e6ee1ae3f772c9504a0b543f2027e2.html">Mgepahmge</a></li><li class="navelem"><a class="el" href="dir_e03f57e346cc4845a4c354a35630b169.html">Documents</a></li><li class="navelem"><a class="el" href="dir_231a0482af2b83c895f27ba7fe745141.html">C Program</a></li><li class="navelem"><a class="el" href="dir_0fa7fc3a0dfd304dbfc9dce9f6facfa2.html">NeuZephyr</a></li><li class="navelem"><a class="el" href="dir_e7295b03dab2e9cdf32139bd8ec2e607.html">include</a></li><li class="navelem"><a class="el" href="dir_657344ecc65cfc28732701509f8d8421.html">NeuZephyr</a></li>  </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
  <div class="headertitle"><div class="title">OperationKernels.cuh</div></div>
</div><!--header-->
<div class="contents">
<a href="_operation_kernels_8cuh.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno">   46</span><span class="preprocessor">#ifndef OPERATIONKERNELS_CUH</span></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno">   47</span><span class="preprocessor">#define OPERATIONKERNELS_CUH</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno">   48</span><span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno">   49</span><span class="preprocessor">#include &quot;Dimension.cuh&quot;</span></div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno">   50</span> </div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno">   51</span><span class="preprocessor">#define OUTPUT_DIM(INPUT, KERNEL, STRIDE, PADDING) \</span></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno">   52</span><span class="preprocessor">( ((size_t)(INPUT) + 2*(size_t)(PADDING) - (size_t)(KERNEL)) / (size_t)(STRIDE) + 1 )</span></div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno">   53</span> </div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno">  121</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacenz_1_1krnl.html">nz::krnl</a> {</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno">  122</span><span class="preprocessor">#ifdef __CUDACC__</span></div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno">  141</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a97cda6dfc6545efaee2b686eed9ae766">MatrixAdd</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* a, <span class="keywordtype">float</span>* b, <span class="keywordtype">float</span>* c, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n, <span class="keywordtype">size_t</span> offset_c = 0,</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno">  142</span>                   <span class="keywordtype">size_t</span> offset_a = 0, <span class="keywordtype">size_t</span> offset_b = 0);</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno">  143</span> </div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno">  162</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a97cda6dfc6545efaee2b686eed9ae766">MatrixAdd</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* a, <span class="keywordtype">float</span>* b, <span class="keywordtype">float</span>* c,</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno">  163</span>                   <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n, <span class="keyword">const</span> std::vector&lt;size_t&gt;&amp; offset_c, <span class="keyword">const</span> std::vector&lt;size_t&gt;&amp; offset_a,</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno">  164</span>                   <span class="keyword">const</span> std::vector&lt;size_t&gt;&amp; offset_b);</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno">  165</span> </div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno">  184</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#ad18a2b0efc0cdfc9cb861396ad4da53f">MatrixSub</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* a, <span class="keywordtype">float</span>* b, <span class="keywordtype">float</span>* c,</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno">  185</span>                   <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n, <span class="keywordtype">size_t</span> offset_c = 0, <span class="keywordtype">size_t</span> offset_a = 0, <span class="keywordtype">size_t</span> offset_b = 0);</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno">  186</span> </div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno">  205</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#ad18a2b0efc0cdfc9cb861396ad4da53f">MatrixSub</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* a, <span class="keywordtype">float</span>* b, <span class="keywordtype">float</span>* c,</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno">  206</span>                   <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n, <span class="keyword">const</span> std::vector&lt;size_t&gt;&amp; offset_c, <span class="keyword">const</span> std::vector&lt;size_t&gt;&amp; offset_a,</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno">  207</span>                   <span class="keyword">const</span> std::vector&lt;size_t&gt;&amp; offset_b);</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno">  208</span> </div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno">  229</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#ae30a6e1de69588aa0c6eb8a5b8e6e826">GeneralMatrixMul</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* A, <span class="keywordtype">float</span>* B, <span class="keywordtype">float</span>* C,</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno">  230</span>                          <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> M,</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno">  231</span>                          <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> N,</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno">  232</span>                          <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> K,</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno">  233</span>                          <span class="keywordtype">size_t</span> offset_c = 0,</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno">  234</span>                          <span class="keywordtype">size_t</span> offset_a = 0,</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno">  235</span>                          <span class="keywordtype">size_t</span> offset_b = 0);</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno">  236</span> </div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno">  257</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#ae30a6e1de69588aa0c6eb8a5b8e6e826">GeneralMatrixMul</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* A, <span class="keywordtype">float</span>* B, <span class="keywordtype">float</span>* C,</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno">  258</span>                          <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> M,</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno">  259</span>                          <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> N,</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno">  260</span>                          <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> K,</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno">  261</span>                          <span class="keyword">const</span> std::vector&lt;size_t&gt;&amp; offset_c,</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno">  262</span>                          <span class="keyword">const</span> std::vector&lt;size_t&gt;&amp; offset_a,</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno">  263</span>                          <span class="keyword">const</span> std::vector&lt;size_t&gt;&amp; offset_b);</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno">  264</span> </div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno">  279</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#afe3f38f788c735b7eb718443eb0fd094">Transpose</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* d_A, <span class="keywordtype">float</span>* d_B,</div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno">  280</span>                   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> rows,</div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno">  281</span>                   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cols,</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno">  282</span>                   <span class="keywordtype">size_t</span> offset = 0);</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno">  283</span> </div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno">  298</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#afe3f38f788c735b7eb718443eb0fd094">Transpose</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* d_A, <span class="keywordtype">float</span>* d_B,</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno">  299</span>                   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> rows,</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno">  300</span>                   <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> cols,</div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno">  301</span>                   <span class="keyword">const</span> std::vector&lt;size_t&gt;&amp; offset);</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno">  302</span> </div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno">  315</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a5af716524e248c61f3dce227d8ef6e34">ScalarMul</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in, <span class="keywordtype">float</span> num,</div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno">  316</span>                   <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n);</div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno">  317</span> </div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno">  330</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a27bc4025be4253d5fffae2bf1b43b3af">ScalarDiv</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in, <span class="keywordtype">float</span> num,</div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno">  331</span>                   <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n);</div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno">  332</span> </div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno">  345</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a56f84e531825be8b2b0974c2488eb765">ScalarAdd</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in, <span class="keywordtype">float</span> num,</div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno">  346</span>                   <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n);</div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno">  347</span> </div>
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno">  359</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#af7069a420e81babb49b1bc009333d053">Negation</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n);</div>
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno">  360</span> </div>
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno">  372</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#adc047e65307dbc711235f637227b7d10">Recip</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n);</div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno">  373</span> </div>
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno">  385</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a8855f411733f7de29d013f4ad40096c9">RectifiedLinearUnit</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in,</div>
<div class="line"><a id="l00386" name="l00386"></a><span class="lineno">  386</span>                             <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n);</div>
<div class="line"><a id="l00387" name="l00387"></a><span class="lineno">  387</span> </div>
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno">  401</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a4ddfc808de99fe831e74a3bd3f9bbdaf">ReLUBackward</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* A_grad, <span class="keywordtype">float</span>* A, <span class="keywordtype">float</span>* B_grad,</div>
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno">  402</span>                      <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n);</div>
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno">  403</span> </div>
<div class="line"><a id="l00416" name="l00416"></a><span class="lineno">  416</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a21bbbcf6d97bfaccc828ce7736814bd4">Sigmoid</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in,</div>
<div class="line"><a id="l00417" name="l00417"></a><span class="lineno">  417</span>                 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n);</div>
<div class="line"><a id="l00418" name="l00418"></a><span class="lineno">  418</span> </div>
<div class="line"><a id="l00432" name="l00432"></a><span class="lineno">  432</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#aff1f9f1bf9fb677024bd2b565fab9801">SigmoidBackward</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* A_grad, <span class="keywordtype">float</span>* B, <span class="keywordtype">float</span>* B_grad,</div>
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno">  433</span>                         <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n);</div>
<div class="line"><a id="l00434" name="l00434"></a><span class="lineno">  434</span> </div>
<div class="line"><a id="l00447" name="l00447"></a><span class="lineno">  447</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#aeb7d10939b25508e0b5db1fe44f4b467">Tanh</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in,</div>
<div class="line"><a id="l00448" name="l00448"></a><span class="lineno">  448</span>              <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n);</div>
<div class="line"><a id="l00449" name="l00449"></a><span class="lineno">  449</span> </div>
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno">  463</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a90d501e72361b7341f36394af0f27c74">TanhBackward</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* A_grad, <span class="keywordtype">float</span>* B, <span class="keywordtype">float</span>* B_grad,</div>
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno">  464</span>                      <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n);</div>
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno">  465</span> </div>
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno">  479</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a04246c5218530f789a0ed4811b7ef3f3">LeakyReLU</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in,</div>
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno">  480</span>                   <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n, <span class="keywordtype">float</span> alpha = 0.01f);</div>
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno">  481</span> </div>
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno">  496</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a7eade95ddcf48141d69bb19803b22d51">LeakyReLUBackward</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* A_grad, <span class="keywordtype">float</span>* A, <span class="keywordtype">float</span>* B_grad,</div>
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno">  497</span>                           <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n,</div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno">  498</span>                           <span class="keywordtype">float</span> alpha = 0.01f);</div>
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno">  499</span> </div>
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno">  512</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a997aa5460fd64fadf9b701fbf73e3fb2">Swish</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in,</div>
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno">  513</span>               <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n);</div>
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno">  514</span> </div>
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno">  529</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a6c5a4b54442aab42df5afe8688e71596">SwishBackward</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* A_grad, <span class="keywordtype">float</span>* A, <span class="keywordtype">float</span>* B,</div>
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno">  530</span>                       <span class="keywordtype">float</span>* B_grad, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n);</div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno">  531</span> </div>
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno">  545</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a0e82aca250b46ac8ded8cae8936d7e38">ExponentialLinearUnit</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in,</div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno">  546</span>                               <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n, <span class="keywordtype">float</span> alpha = 1.0f);</div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno">  547</span> </div>
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno">  562</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#aee8ca471aa260bd1fca5b1797e229f9f">ELUBackward</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* A_grad, <span class="keywordtype">float</span>* A, <span class="keywordtype">float</span>* B_grad,</div>
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno">  563</span>                     <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n,</div>
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno">  564</span>                     <span class="keywordtype">float</span> alpha = 1.0f);</div>
<div class="line"><a id="l00565" name="l00565"></a><span class="lineno">  565</span> </div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno">  580</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a52e449285e560185378234aecaf2f87c">HardSigmoid</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in,</div>
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno">  581</span>                     <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n, <span class="keywordtype">float</span> alpha = 0.2f, <span class="keywordtype">float</span> beta = 0.5f);</div>
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno">  582</span> </div>
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno">  598</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a43232f9472ad3b974351e59386208efa">HardSigmoidBackward</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* A_grad, <span class="keywordtype">float</span>* A,</div>
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno">  599</span>                             <span class="keywordtype">float</span>* B_grad, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n,</div>
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno">  600</span>                             <span class="keywordtype">float</span> alpha = 0.2f, <span class="keywordtype">float</span> beta = 0.5f);</div>
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno">  601</span> </div>
<div class="line"><a id="l00616" name="l00616"></a><span class="lineno">  616</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#aef9c028ed356b5684e103639bb23bcf0">HardSwish</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n,</div>
<div class="line"><a id="l00617" name="l00617"></a><span class="lineno">  617</span>                   <span class="keywordtype">float</span> alpha = 0.2f, <span class="keywordtype">float</span> beta = 0.5f);</div>
<div class="line"><a id="l00618" name="l00618"></a><span class="lineno">  618</span> </div>
<div class="line"><a id="l00634" name="l00634"></a><span class="lineno">  634</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a455365870d43ff26687a731d15c4cdff">HardSwishBackward</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* A_grad, <span class="keywordtype">float</span>* A, <span class="keywordtype">float</span>* B_grad,</div>
<div class="line"><a id="l00635" name="l00635"></a><span class="lineno">  635</span>                           <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n,</div>
<div class="line"><a id="l00636" name="l00636"></a><span class="lineno">  636</span>                           <span class="keywordtype">float</span> alpha = 0.2f, <span class="keywordtype">float</span> beta = 0.5f);</div>
<div class="line"><a id="l00637" name="l00637"></a><span class="lineno">  637</span> </div>
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno">  652</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a51a5ff3c8cc2c3051fddf32de294b467">SummationExp</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">size_t</span> sharedMemSize, <span class="keywordtype">float</span>* out,</div>
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno">  653</span>                      <span class="keywordtype">float</span>* g_data,</div>
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno">  654</span>                      <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n, <span class="keywordtype">size_t</span> offset = 0);</div>
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno">  655</span> </div>
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno">  671</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#adbafc409d57fa0a9d78ecac5bf7b10a3">Softmax</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in, <span class="keywordtype">float</span> exp_sum_of_input,</div>
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno">  672</span>                 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n, <span class="keywordtype">size_t</span> offset = 0);</div>
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno">  673</span> </div>
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno">  674</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#adbafc409d57fa0a9d78ecac5bf7b10a3">Softmax</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in, <span class="keyword">const</span> std::vector&lt;float&gt;&amp; exp_sum_of_input,</div>
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno">  675</span>                 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n, <span class="keyword">const</span> std::vector&lt;size_t&gt;&amp; offset);</div>
<div class="line"><a id="l00676" name="l00676"></a><span class="lineno">  676</span> </div>
<div class="line"><a id="l00688" name="l00688"></a><span class="lineno">  688</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a4375738c83ef892783abc210578e5b39">SoftmaxJacobian</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in,</div>
<div class="line"><a id="l00689" name="l00689"></a><span class="lineno">  689</span>                         <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n);</div>
<div class="line"><a id="l00690" name="l00690"></a><span class="lineno">  690</span> </div>
<div class="line"><a id="l00691" name="l00691"></a><span class="lineno">  691</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a4375738c83ef892783abc210578e5b39">SoftmaxJacobian</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in,</div>
<div class="line"><a id="l00692" name="l00692"></a><span class="lineno">  692</span>                         <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n, <span class="keyword">const</span> std::vector&lt;size_t&gt;&amp; offset_o,</div>
<div class="line"><a id="l00693" name="l00693"></a><span class="lineno">  693</span>                         <span class="keyword">const</span> std::vector&lt;size_t&gt;&amp; offset_i);</div>
<div class="line"><a id="l00694" name="l00694"></a><span class="lineno">  694</span> </div>
<div class="line"><a id="l00709" name="l00709"></a><span class="lineno">  709</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#af76ce6a930db4def5ceb51350af72f3c">MeanSquaredError</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">size_t</span> sharedMemSize, <span class="keywordtype">float</span>* out,</div>
<div class="line"><a id="l00710" name="l00710"></a><span class="lineno">  710</span>                          <span class="keywordtype">float</span>* predict, <span class="keywordtype">float</span>* real, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n);</div>
<div class="line"><a id="l00711" name="l00711"></a><span class="lineno">  711</span> </div>
<div class="line"><a id="l00725" name="l00725"></a><span class="lineno">  725</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#ae77920db6adf79a17dbfb1dbf1ab5656">MSEBackward</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* predict,</div>
<div class="line"><a id="l00726" name="l00726"></a><span class="lineno">  726</span>                     <span class="keywordtype">float</span>* real, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n);</div>
<div class="line"><a id="l00727" name="l00727"></a><span class="lineno">  727</span> </div>
<div class="line"><a id="l00739" name="l00739"></a><span class="lineno">  739</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#aeec286d5351eee7061e151470adb4eef">StochasticGradientDescent</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* data, <span class="keywordtype">float</span>* grad,</div>
<div class="line"><a id="l00740" name="l00740"></a><span class="lineno">  740</span>                                   <span class="keywordtype">float</span> lr, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n);</div>
<div class="line"><a id="l00741" name="l00741"></a><span class="lineno">  741</span> </div>
<div class="line"><a id="l00756" name="l00756"></a><span class="lineno">  756</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#abf927faf0950fbc215564c67b8ac57be">BinaryCrossEntropy</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">size_t</span> sharedMemSize, <span class="keywordtype">float</span>* out,</div>
<div class="line"><a id="l00757" name="l00757"></a><span class="lineno">  757</span>                            <span class="keywordtype">float</span>* predict, <span class="keywordtype">float</span>* real, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n);</div>
<div class="line"><a id="l00758" name="l00758"></a><span class="lineno">  758</span> </div>
<div class="line"><a id="l00772" name="l00772"></a><span class="lineno">  772</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a1fc3d553947a5cad87f29989f9d9465d">BCEBackward</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* predict,</div>
<div class="line"><a id="l00773" name="l00773"></a><span class="lineno">  773</span>                     <span class="keywordtype">float</span>* real, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n);</div>
<div class="line"><a id="l00774" name="l00774"></a><span class="lineno">  774</span> </div>
<div class="line"><a id="l00789" name="l00789"></a><span class="lineno">  789</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a273ef3023442a864f1028becaf236bae">Momentum</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* output, <span class="keywordtype">float</span>* grad, <span class="keywordtype">float</span>* velocity, <span class="keywordtype">float</span> beta,</div>
<div class="line"><a id="l00790" name="l00790"></a><span class="lineno">  790</span>                  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n);</div>
<div class="line"><a id="l00791" name="l00791"></a><span class="lineno">  791</span> </div>
<div class="line"><a id="l00807" name="l00807"></a><span class="lineno">  807</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a1e915bd4a354938d8bc2d09be00eae76">AdaGrad</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* data, <span class="keywordtype">float</span>* G, <span class="keywordtype">float</span>* grad, <span class="keywordtype">float</span> lr,</div>
<div class="line"><a id="l00808" name="l00808"></a><span class="lineno">  808</span>                 <span class="keywordtype">float</span> eps, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n);</div>
<div class="line"><a id="l00809" name="l00809"></a><span class="lineno">  809</span> </div>
<div class="line"><a id="l00826" name="l00826"></a><span class="lineno">  826</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#aaf3c9cca114d003130ffa4354b4a24de">RMSprop</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* data, <span class="keywordtype">float</span>* v, <span class="keywordtype">float</span>* grad, <span class="keywordtype">float</span> lr,</div>
<div class="line"><a id="l00827" name="l00827"></a><span class="lineno">  827</span>                 <span class="keywordtype">float</span> beta, <span class="keywordtype">float</span> eps, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n);</div>
<div class="line"><a id="l00828" name="l00828"></a><span class="lineno">  828</span> </div>
<div class="line"><a id="l00848" name="l00848"></a><span class="lineno">  848</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a2b9ab840eeb0e74f4b78277a046b3a07">Adam</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* data, <span class="keywordtype">float</span>* m, <span class="keywordtype">float</span>* v, <span class="keywordtype">float</span>* grad,</div>
<div class="line"><a id="l00849" name="l00849"></a><span class="lineno">  849</span>              <span class="keywordtype">float</span> lr, <span class="keywordtype">float</span> beta1, <span class="keywordtype">float</span> beta2, <span class="keywordtype">float</span> eps, <span class="keywordtype">int</span> t,</div>
<div class="line"><a id="l00850" name="l00850"></a><span class="lineno">  850</span>              <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n);</div>
<div class="line"><a id="l00851" name="l00851"></a><span class="lineno">  851</span> </div>
<div class="line"><a id="l00871" name="l00871"></a><span class="lineno">  871</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#ada94b8c5c6e6d72132face63a3305624">NAdam</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* data, <span class="keywordtype">float</span>* m, <span class="keywordtype">float</span>* m_modified, <span class="keywordtype">float</span>* v,</div>
<div class="line"><a id="l00872" name="l00872"></a><span class="lineno">  872</span>               <span class="keywordtype">float</span>* grad, <span class="keywordtype">float</span> lr, <span class="keywordtype">float</span> beta1, <span class="keywordtype">float</span> beta2, <span class="keywordtype">float</span> eps, <span class="keywordtype">int</span> t,</div>
<div class="line"><a id="l00873" name="l00873"></a><span class="lineno">  873</span>               <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n);</div>
<div class="line"><a id="l00874" name="l00874"></a><span class="lineno">  874</span> </div>
<div class="line"><a id="l00891" name="l00891"></a><span class="lineno">  891</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a1f71726879c2d6a9d790522cdc1576e1">AdaDelta</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* data, <span class="keywordtype">float</span>* acc_delta, <span class="keywordtype">float</span>* acc_grad,</div>
<div class="line"><a id="l00892" name="l00892"></a><span class="lineno">  892</span>                  <span class="keywordtype">float</span>* grad, <span class="keywordtype">float</span> rho, <span class="keywordtype">float</span> eps, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n);</div>
<div class="line"><a id="l00893" name="l00893"></a><span class="lineno">  893</span> </div>
<div class="line"><a id="l00911" name="l00911"></a><span class="lineno">  911</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#aa84aa2397f4f5a09a96bef76726e46f0">TensorCoreGEMM</a>(<span class="keywordtype">float</span>* A, <span class="keywordtype">float</span>* B, <span class="keywordtype">float</span>* C, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> M,</div>
<div class="line"><a id="l00912" name="l00912"></a><span class="lineno">  912</span>                        <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> N, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> K);</div>
<div class="line"><a id="l00913" name="l00913"></a><span class="lineno">  913</span> </div>
<div class="line"><a id="l00914" name="l00914"></a><span class="lineno">  914</span>    <span class="keywordtype">void</span> TensorCoreGEMMParallel(<span class="keywordtype">float</span>* A, <span class="keywordtype">float</span>* B, <span class="keywordtype">float</span>* C,</div>
<div class="line"><a id="l00915" name="l00915"></a><span class="lineno">  915</span>                                <span class="keyword">const</span> data::Dimension&amp; A_shape,</div>
<div class="line"><a id="l00916" name="l00916"></a><span class="lineno">  916</span>                                <span class="keyword">const</span> data::Dimension&amp; B_shape,</div>
<div class="line"><a id="l00917" name="l00917"></a><span class="lineno">  917</span>                                <span class="keyword">const</span> data::Dimension&amp; C_shape);</div>
<div class="line"><a id="l00918" name="l00918"></a><span class="lineno">  918</span> </div>
<div class="line"><a id="l00919" name="l00919"></a><span class="lineno">  919</span>    <span class="keywordtype">void</span> GEMMBackwardParallel(<span class="keywordtype">float</span>* A, <span class="keywordtype">float</span>* B, <span class="keywordtype">float</span>* C,</div>
<div class="line"><a id="l00920" name="l00920"></a><span class="lineno">  920</span>                              <span class="keyword">const</span> data::Dimension&amp; A_shape,</div>
<div class="line"><a id="l00921" name="l00921"></a><span class="lineno">  921</span>                              <span class="keyword">const</span> data::Dimension&amp; B_shape,</div>
<div class="line"><a id="l00922" name="l00922"></a><span class="lineno">  922</span>                              <span class="keyword">const</span> data::Dimension&amp; C_shape);</div>
<div class="line"><a id="l00923" name="l00923"></a><span class="lineno">  923</span> </div>
<div class="line"><a id="l00938" name="l00938"></a><span class="lineno">  938</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#ad136c8a6560a5305984ce0a31bea71bf">Fill</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* data, <span class="keywordtype">float</span> value, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n, <span class="keywordtype">size_t</span> offset = 0);</div>
<div class="line"><a id="l00939" name="l00939"></a><span class="lineno">  939</span> </div>
<div class="line"><a id="l00954" name="l00954"></a><span class="lineno">  954</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a8ec4524fdefd3d771c72e77e94281c88">HadamardProduct</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in1, <span class="keywordtype">float</span>* in2,</div>
<div class="line"><a id="l00955" name="l00955"></a><span class="lineno">  955</span>                         <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n);</div>
<div class="line"><a id="l00956" name="l00956"></a><span class="lineno">  956</span> </div>
<div class="line"><a id="l00974" name="l00974"></a><span class="lineno">  974</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#aa61cded4977bb2dc3720f7057cc2fb47">ElementwiseDivide</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in1, <span class="keywordtype">float</span>* in2,</div>
<div class="line"><a id="l00975" name="l00975"></a><span class="lineno">  975</span>                           <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n, <span class="keywordtype">size_t</span> offset_o = 0, <span class="keywordtype">size_t</span> offset_1 = 0, <span class="keywordtype">size_t</span> offset_2 = 0);</div>
<div class="line"><a id="l00976" name="l00976"></a><span class="lineno">  976</span> </div>
<div class="line"><a id="l00977" name="l00977"></a><span class="lineno">  977</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#aa61cded4977bb2dc3720f7057cc2fb47">ElementwiseDivide</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in1, <span class="keywordtype">float</span>* in2,</div>
<div class="line"><a id="l00978" name="l00978"></a><span class="lineno">  978</span>                           <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n, <span class="keyword">const</span> std::vector&lt;size_t&gt;&amp; offset_o,</div>
<div class="line"><a id="l00979" name="l00979"></a><span class="lineno">  979</span>                           <span class="keyword">const</span> std::vector&lt;size_t&gt;&amp; offset_1,</div>
<div class="line"><a id="l00980" name="l00980"></a><span class="lineno">  980</span>                           <span class="keyword">const</span> std::vector&lt;size_t&gt;&amp; offset_2);</div>
<div class="line"><a id="l00981" name="l00981"></a><span class="lineno">  981</span> </div>
<div class="line"><a id="l00997" name="l00997"></a><span class="lineno">  997</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a1ae846a65c2f5b83cd1b9fc61b877854">Summation</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> sharedMemSize, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in,</div>
<div class="line"><a id="l00998" name="l00998"></a><span class="lineno">  998</span>                   <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> n, <span class="keywordtype">size_t</span> offset = 0);</div>
<div class="line"><a id="l00999" name="l00999"></a><span class="lineno">  999</span> </div>
<div class="line"><a id="l01019" name="l01019"></a><span class="lineno"> 1019</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a0ed44a68bfb86a9fd3d6c3b25614713f">gradCopy</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in, <span class="keywordtype">size_t</span> n,</div>
<div class="line"><a id="l01020" name="l01020"></a><span class="lineno"> 1020</span>                  <span class="keyword">const</span> std::vector&lt;size_t&gt;&amp; offset_o, <span class="keyword">const</span> std::vector&lt;size_t&gt;&amp; offset_i);</div>
<div class="line"><a id="l01021" name="l01021"></a><span class="lineno"> 1021</span> </div>
<div class="line"><a id="l01041" name="l01041"></a><span class="lineno"> 1041</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a9ac0590fbb5eb7f51b05da574e9845a8">NgradCopy</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in, <span class="keywordtype">size_t</span> n,</div>
<div class="line"><a id="l01042" name="l01042"></a><span class="lineno"> 1042</span>                   <span class="keyword">const</span> std::vector&lt;size_t&gt;&amp; offset_o, <span class="keyword">const</span> std::vector&lt;size_t&gt;&amp; offset_i);</div>
<div class="line"><a id="l01043" name="l01043"></a><span class="lineno"> 1043</span> </div>
<div class="line"><a id="l01060" name="l01060"></a><span class="lineno"> 1060</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#ae45dbebceb76ddf82fa5e6b9df882e62">Expand</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in, <span class="keywordtype">size_t</span> n,</div>
<div class="line"><a id="l01061" name="l01061"></a><span class="lineno"> 1061</span>                <span class="keywordtype">size_t</span> total);</div>
<div class="line"><a id="l01062" name="l01062"></a><span class="lineno"> 1062</span> </div>
<div class="line"><a id="l01079" name="l01079"></a><span class="lineno"> 1079</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a454a28ef0e22014efca1ede4e954db65">Compress</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in, <span class="keywordtype">size_t</span> n,</div>
<div class="line"><a id="l01080" name="l01080"></a><span class="lineno"> 1080</span>                  <span class="keywordtype">size_t</span> total);</div>
<div class="line"><a id="l01081" name="l01081"></a><span class="lineno"> 1081</span> </div>
<div class="line"><a id="l01108" name="l01108"></a><span class="lineno"> 1108</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a3a781324400c54c35dd564f3599dca8e">img2col</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in, <span class="keywordtype">size_t</span> H_out,</div>
<div class="line"><a id="l01109" name="l01109"></a><span class="lineno"> 1109</span>                 <span class="keywordtype">size_t</span> W_out, <span class="keywordtype">size_t</span> C, <span class="keywordtype">size_t</span> K_h, <span class="keywordtype">size_t</span> K_w, <span class="keywordtype">size_t</span> stride,</div>
<div class="line"><a id="l01110" name="l01110"></a><span class="lineno"> 1110</span>                 <span class="keywordtype">size_t</span> pad, <span class="keywordtype">size_t</span> H_in, <span class="keywordtype">size_t</span> W_in, <span class="keywordtype">size_t</span> batch);</div>
<div class="line"><a id="l01111" name="l01111"></a><span class="lineno"> 1111</span> </div>
<div class="line"><a id="l01138" name="l01138"></a><span class="lineno"> 1138</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a1c2b7a6f28d2af22f9a2623c5ae62bff">img2colBackward</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in, <span class="keywordtype">size_t</span> H_out,</div>
<div class="line"><a id="l01139" name="l01139"></a><span class="lineno"> 1139</span>                         <span class="keywordtype">size_t</span> W_out, <span class="keywordtype">size_t</span> C, <span class="keywordtype">size_t</span> K_h, <span class="keywordtype">size_t</span> K_w, <span class="keywordtype">size_t</span> stride,</div>
<div class="line"><a id="l01140" name="l01140"></a><span class="lineno"> 1140</span>                         <span class="keywordtype">size_t</span> pad, <span class="keywordtype">size_t</span> H_in, <span class="keywordtype">size_t</span> W_in, <span class="keywordtype">size_t</span> batch);</div>
<div class="line"><a id="l01141" name="l01141"></a><span class="lineno"> 1141</span> </div>
<div class="line"><a id="l01161" name="l01161"></a><span class="lineno"> 1161</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a7c061f5511c3ab9d36563757bd969ff7">col2img</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in, <span class="keywordtype">size_t</span> H_out,</div>
<div class="line"><a id="l01162" name="l01162"></a><span class="lineno"> 1162</span>                 <span class="keywordtype">size_t</span> W_out, <span class="keywordtype">size_t</span> C_out, <span class="keywordtype">size_t</span> batches);</div>
<div class="line"><a id="l01163" name="l01163"></a><span class="lineno"> 1163</span> </div>
<div class="line"><a id="l01183" name="l01183"></a><span class="lineno"> 1183</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a028970809074d79f28ff94f62b3edaa4">col2imgBackward</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in, <span class="keywordtype">size_t</span> H_out,</div>
<div class="line"><a id="l01184" name="l01184"></a><span class="lineno"> 1184</span>                         <span class="keywordtype">size_t</span> W_out, <span class="keywordtype">size_t</span> C_out, <span class="keywordtype">size_t</span> batches);</div>
<div class="line"><a id="l01185" name="l01185"></a><span class="lineno"> 1185</span> </div>
<div class="line"><a id="l01206" name="l01206"></a><span class="lineno"> 1206</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#addaa377a94d007df2690043b08904e28">AveragePooling</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in,</div>
<div class="line"><a id="l01207" name="l01207"></a><span class="lineno"> 1207</span>                        <span class="keywordtype">size_t</span> pool_size, <span class="keywordtype">size_t</span> stride, <span class="keywordtype">size_t</span> padding,</div>
<div class="line"><a id="l01208" name="l01208"></a><span class="lineno"> 1208</span>                        <span class="keywordtype">size_t</span> batches, <span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> H_in, <span class="keywordtype">size_t</span> W_in,</div>
<div class="line"><a id="l01209" name="l01209"></a><span class="lineno"> 1209</span>                        <span class="keywordtype">size_t</span> H_out, <span class="keywordtype">size_t</span> W_out);</div>
<div class="line"><a id="l01210" name="l01210"></a><span class="lineno"> 1210</span> </div>
<div class="line"><a id="l01231" name="l01231"></a><span class="lineno"> 1231</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a551402f9c55653c9fae63e172a5fb250">AveragePoolingBackward</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* out, <span class="keywordtype">float</span>* in,</div>
<div class="line"><a id="l01232" name="l01232"></a><span class="lineno"> 1232</span>                                <span class="keywordtype">size_t</span> pool_size, <span class="keywordtype">size_t</span> stride, <span class="keywordtype">size_t</span> padding,</div>
<div class="line"><a id="l01233" name="l01233"></a><span class="lineno"> 1233</span>                                <span class="keywordtype">size_t</span> batches, <span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> H_in, <span class="keywordtype">size_t</span> W_in,</div>
<div class="line"><a id="l01234" name="l01234"></a><span class="lineno"> 1234</span>                                <span class="keywordtype">size_t</span> H_out, <span class="keywordtype">size_t</span> W_out);</div>
<div class="line"><a id="l01235" name="l01235"></a><span class="lineno"> 1235</span> </div>
<div class="line"><a id="l01251" name="l01251"></a><span class="lineno"> 1251</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a73ceb77688c4008dc350fc87b99875aa">GlobalAvgPoolBackward</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* output, <span class="keywordtype">float</span>* in,</div>
<div class="line"><a id="l01252" name="l01252"></a><span class="lineno"> 1252</span>                               <span class="keywordtype">size_t</span> batches, <span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> height, <span class="keywordtype">size_t</span> width);</div>
<div class="line"><a id="l01253" name="l01253"></a><span class="lineno"> 1253</span> </div>
<div class="line"><a id="l01275" name="l01275"></a><span class="lineno"> 1275</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#abcc632e5a7104c1a28208e94a4ce6e28">MaxPooling</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* output, <span class="keywordtype">float</span>* position, <span class="keywordtype">float</span>* input,</div>
<div class="line"><a id="l01276" name="l01276"></a><span class="lineno"> 1276</span>                    <span class="keywordtype">size_t</span> pool_size, <span class="keywordtype">size_t</span> stride, <span class="keywordtype">size_t</span> padding,</div>
<div class="line"><a id="l01277" name="l01277"></a><span class="lineno"> 1277</span>                    <span class="keywordtype">size_t</span> batches, <span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> H_in, <span class="keywordtype">size_t</span> W_in,</div>
<div class="line"><a id="l01278" name="l01278"></a><span class="lineno"> 1278</span>                    <span class="keywordtype">size_t</span> H_out, <span class="keywordtype">size_t</span> W_out);</div>
<div class="line"><a id="l01279" name="l01279"></a><span class="lineno"> 1279</span> </div>
<div class="line"><a id="l01301" name="l01301"></a><span class="lineno"> 1301</span>    <span class="keywordtype">void</span> <a class="code hl_function" href="namespacenz_1_1krnl.html#a0d5f5f4c9e89a8d914a7f2f802d1caab">MaxPoolingBackward</a>(dim3 gridDim, dim3 blockDim, <span class="keywordtype">float</span>* output, <span class="keywordtype">float</span>* position, <span class="keywordtype">float</span>* input,</div>
<div class="line"><a id="l01302" name="l01302"></a><span class="lineno"> 1302</span>                            <span class="keywordtype">size_t</span> pool_size, <span class="keywordtype">size_t</span> stride, <span class="keywordtype">size_t</span> padding,</div>
<div class="line"><a id="l01303" name="l01303"></a><span class="lineno"> 1303</span>                            <span class="keywordtype">size_t</span> batches, <span class="keywordtype">size_t</span> channels, <span class="keywordtype">size_t</span> H_in, <span class="keywordtype">size_t</span> W_in,</div>
<div class="line"><a id="l01304" name="l01304"></a><span class="lineno"> 1304</span>                            <span class="keywordtype">size_t</span> H_out, <span class="keywordtype">size_t</span> W_out);</div>
<div class="line"><a id="l01305" name="l01305"></a><span class="lineno"> 1305</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l01306" name="l01306"></a><span class="lineno"> 1306</span>}</div>
<div class="line"><a id="l01307" name="l01307"></a><span class="lineno"> 1307</span> </div>
<div class="line"><a id="l01308" name="l01308"></a><span class="lineno"> 1308</span><span class="preprocessor">#endif </span><span class="comment">//OPERATIONKERNELS_CUH</span></div>
<div class="ttc" id="anamespacenz_1_1krnl_html"><div class="ttname"><a href="namespacenz_1_1krnl.html">nz::krnl</a></div><div class="ttdoc">High-Performance CUDA Kernel Implementations for Tensor Computations.</div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a028970809074d79f28ff94f62b3edaa4"><div class="ttname"><a href="namespacenz_1_1krnl.html#a028970809074d79f28ff94f62b3edaa4">nz::krnl::col2imgBackward</a></div><div class="ttdeci">void col2imgBackward(dim3 gridDim, dim3 blockDim, float *out, float *in, size_t H_out, size_t W_out, size_t C_out, size_t batches)</div><div class="ttdoc">Rearranges columnar data back into image format for backpropagation.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l01398">OperationKernels.cu:1398</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a04246c5218530f789a0ed4811b7ef3f3"><div class="ttname"><a href="namespacenz_1_1krnl.html#a04246c5218530f789a0ed4811b7ef3f3">nz::krnl::LeakyReLU</a></div><div class="ttdeci">void LeakyReLU(dim3 gridDim, dim3 blockDim, float *out, float *in, unsigned long long n, float alpha=0.01f)</div><div class="ttdoc">Kernel function to apply the Leaky ReLU activation function on the GPU.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00315">OperationKernels.cu:315</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a0d5f5f4c9e89a8d914a7f2f802d1caab"><div class="ttname"><a href="namespacenz_1_1krnl.html#a0d5f5f4c9e89a8d914a7f2f802d1caab">nz::krnl::MaxPoolingBackward</a></div><div class="ttdeci">void MaxPoolingBackward(dim3 gridDim, dim3 blockDim, float *output, float *position, float *input, size_t pool_size, size_t stride, size_t padding, size_t batches, size_t channels, size_t H_in, size_t W_in, size_t H_out, size_t W_out)</div><div class="ttdoc">Kernel function to compute the gradient of max pooling during backpropagation.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l01567">OperationKernels.cu:1567</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a0e82aca250b46ac8ded8cae8936d7e38"><div class="ttname"><a href="namespacenz_1_1krnl.html#a0e82aca250b46ac8ded8cae8936d7e38">nz::krnl::ExponentialLinearUnit</a></div><div class="ttdeci">void ExponentialLinearUnit(dim3 gridDim, dim3 blockDim, float *out, float *in, unsigned long long n, float alpha=1.0f)</div><div class="ttdoc">Kernel function to apply the Exponential Linear Unit (ELU) activation function on the GPU.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00372">OperationKernels.cu:372</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a0ed44a68bfb86a9fd3d6c3b25614713f"><div class="ttname"><a href="namespacenz_1_1krnl.html#a0ed44a68bfb86a9fd3d6c3b25614713f">nz::krnl::gradCopy</a></div><div class="ttdeci">void gradCopy(dim3 gridDim, dim3 blockDim, float *out, float *in, size_t n, const std::vector&lt; size_t &gt; &amp;offset_o, const std::vector&lt; size_t &gt; &amp;offset_i)</div><div class="ttdoc">Copies gradient data from one array to another with specified offsets.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l01238">OperationKernels.cu:1238</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a1ae846a65c2f5b83cd1b9fc61b877854"><div class="ttname"><a href="namespacenz_1_1krnl.html#a1ae846a65c2f5b83cd1b9fc61b877854">nz::krnl::Summation</a></div><div class="ttdeci">void Summation(dim3 gridDim, dim3 blockDim, unsigned long long sharedMemSize, float *out, float *in, unsigned long long n, size_t offset=0)</div><div class="ttdoc">Kernel function to perform element-wise summation of two arrays.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l01225">OperationKernels.cu:1225</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a1c2b7a6f28d2af22f9a2623c5ae62bff"><div class="ttname"><a href="namespacenz_1_1krnl.html#a1c2b7a6f28d2af22f9a2623c5ae62bff">nz::krnl::img2colBackward</a></div><div class="ttdeci">void img2colBackward(dim3 gridDim, dim3 blockDim, float *out, float *in, size_t H_out, size_t W_out, size_t C, size_t K_h, size_t K_w, size_t stride, size_t pad, size_t H_in, size_t W_in, size_t batch)</div><div class="ttdoc">Rearranges columnar data back into image format for backpropagation in convolution operations.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l01357">OperationKernels.cu:1357</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a1e915bd4a354938d8bc2d09be00eae76"><div class="ttname"><a href="namespacenz_1_1krnl.html#a1e915bd4a354938d8bc2d09be00eae76">nz::krnl::AdaGrad</a></div><div class="ttdeci">void AdaGrad(dim3 gridDim, dim3 blockDim, float *data, float *G, float *grad, float lr, float eps, unsigned long long n)</div><div class="ttdoc">Kernel function to apply AdaGrad optimization.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00731">OperationKernels.cu:731</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a1f71726879c2d6a9d790522cdc1576e1"><div class="ttname"><a href="namespacenz_1_1krnl.html#a1f71726879c2d6a9d790522cdc1576e1">nz::krnl::AdaDelta</a></div><div class="ttdeci">void AdaDelta(dim3 gridDim, dim3 blockDim, float *data, float *acc_delta, float *acc_grad, float *grad, float rho, float eps, unsigned long long n)</div><div class="ttdoc">Kernel function to apply AdaDelta optimization.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00815">OperationKernels.cu:815</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a1fc3d553947a5cad87f29989f9d9465d"><div class="ttname"><a href="namespacenz_1_1krnl.html#a1fc3d553947a5cad87f29989f9d9465d">nz::krnl::BCEBackward</a></div><div class="ttdeci">void BCEBackward(dim3 gridDim, dim3 blockDim, float *out, float *predict, float *real, unsigned long long n)</div><div class="ttdoc">Kernel function to compute the gradient of Binary Cross Entropy (BCE) loss for backpropagation.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00701">OperationKernels.cu:701</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a21bbbcf6d97bfaccc828ce7736814bd4"><div class="ttname"><a href="namespacenz_1_1krnl.html#a21bbbcf6d97bfaccc828ce7736814bd4">nz::krnl::Sigmoid</a></div><div class="ttdeci">void Sigmoid(dim3 gridDim, dim3 blockDim, float *out, float *in, unsigned long long n)</div><div class="ttdoc">Kernel function to apply the Sigmoid activation function on the GPU.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00263">OperationKernels.cu:263</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a273ef3023442a864f1028becaf236bae"><div class="ttname"><a href="namespacenz_1_1krnl.html#a273ef3023442a864f1028becaf236bae">nz::krnl::Momentum</a></div><div class="ttdeci">void Momentum(dim3 gridDim, dim3 blockDim, float *output, float *grad, float *velocity, float beta, unsigned long long n)</div><div class="ttdoc">Kernel function to apply Momentum optimization.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00715">OperationKernels.cu:715</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a27bc4025be4253d5fffae2bf1b43b3af"><div class="ttname"><a href="namespacenz_1_1krnl.html#a27bc4025be4253d5fffae2bf1b43b3af">nz::krnl::ScalarDiv</a></div><div class="ttdeci">void ScalarDiv(dim3 gridDim, dim3 blockDim, float *out, float *in, float num, unsigned long long n)</div><div class="ttdoc">Kernel function to perform scalar division on the GPU.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00183">OperationKernels.cu:183</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a2b9ab840eeb0e74f4b78277a046b3a07"><div class="ttname"><a href="namespacenz_1_1krnl.html#a2b9ab840eeb0e74f4b78277a046b3a07">nz::krnl::Adam</a></div><div class="ttdeci">void Adam(dim3 gridDim, dim3 blockDim, float *data, float *m, float *v, float *grad, float lr, float beta1, float beta2, float eps, int t, unsigned long long n)</div><div class="ttdoc">Kernel function to apply Adam optimization.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00768">OperationKernels.cu:768</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a3a781324400c54c35dd564f3599dca8e"><div class="ttname"><a href="namespacenz_1_1krnl.html#a3a781324400c54c35dd564f3599dca8e">nz::krnl::img2col</a></div><div class="ttdeci">void img2col(dim3 gridDim, dim3 blockDim, float *out, float *in, size_t H_out, size_t W_out, size_t C, size_t K_h, size_t K_w, size_t stride, size_t pad, size_t H_in, size_t W_in, size_t batch)</div><div class="ttdoc">Rearranges image data into column format for convolution operations.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l01330">OperationKernels.cu:1330</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a43232f9472ad3b974351e59386208efa"><div class="ttname"><a href="namespacenz_1_1krnl.html#a43232f9472ad3b974351e59386208efa">nz::krnl::HardSigmoidBackward</a></div><div class="ttdeci">void HardSigmoidBackward(dim3 gridDim, dim3 blockDim, float *A_grad, float *A, float *B_grad, unsigned long long n, float alpha=0.2f, float beta=0.5f)</div><div class="ttdoc">Kernel function to compute the gradient of the Hard Sigmoid activation during backpropagation.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00424">OperationKernels.cu:424</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a4375738c83ef892783abc210578e5b39"><div class="ttname"><a href="namespacenz_1_1krnl.html#a4375738c83ef892783abc210578e5b39">nz::krnl::SoftmaxJacobian</a></div><div class="ttdeci">void SoftmaxJacobian(dim3 gridDim, dim3 blockDim, float *out, float *in, unsigned long long n)</div><div class="ttdoc">Kernel function to compute the Jacobian of the Softmax function.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00567">OperationKernels.cu:567</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a454a28ef0e22014efca1ede4e954db65"><div class="ttname"><a href="namespacenz_1_1krnl.html#a454a28ef0e22014efca1ede4e954db65">nz::krnl::Compress</a></div><div class="ttdeci">void Compress(dim3 gridDim, dim3 blockDim, float *out, float *in, size_t n, size_t total)</div><div class="ttdoc">Compresses the input array into the output array with a specified total size.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l01303">OperationKernels.cu:1303</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a455365870d43ff26687a731d15c4cdff"><div class="ttname"><a href="namespacenz_1_1krnl.html#a455365870d43ff26687a731d15c4cdff">nz::krnl::HardSwishBackward</a></div><div class="ttdeci">void HardSwishBackward(dim3 gridDim, dim3 blockDim, float *A_grad, float *A, float *B_grad, unsigned long long n, float alpha=0.2f, float beta=0.5f)</div><div class="ttdoc">Kernel function to compute the gradient of the Hard Swish activation during backpropagation.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00462">OperationKernels.cu:462</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a4ddfc808de99fe831e74a3bd3f9bbdaf"><div class="ttname"><a href="namespacenz_1_1krnl.html#a4ddfc808de99fe831e74a3bd3f9bbdaf">nz::krnl::ReLUBackward</a></div><div class="ttdeci">void ReLUBackward(dim3 gridDim, dim3 blockDim, float *A_grad, float *A, float *B_grad, unsigned long long n)</div><div class="ttdoc">Kernel function to compute the gradient of the ReLU activation during backpropagation.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00250">OperationKernels.cu:250</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a51a5ff3c8cc2c3051fddf32de294b467"><div class="ttname"><a href="namespacenz_1_1krnl.html#a51a5ff3c8cc2c3051fddf32de294b467">nz::krnl::SummationExp</a></div><div class="ttdeci">void SummationExp(dim3 gridDim, dim3 blockDim, size_t sharedMemSize, float *out, float *g_data, unsigned long long n, size_t offset=0)</div><div class="ttdoc">Kernel function to compute the summation of exponentials of each element in the input array.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00510">OperationKernels.cu:510</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a52e449285e560185378234aecaf2f87c"><div class="ttname"><a href="namespacenz_1_1krnl.html#a52e449285e560185378234aecaf2f87c">nz::krnl::HardSigmoid</a></div><div class="ttdeci">void HardSigmoid(dim3 gridDim, dim3 blockDim, float *out, float *in, unsigned long long n, float alpha=0.2f, float beta=0.5f)</div><div class="ttdoc">Kernel function to apply the Hard Sigmoid activation function on the GPU.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00403">OperationKernels.cu:403</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a551402f9c55653c9fae63e172a5fb250"><div class="ttname"><a href="namespacenz_1_1krnl.html#a551402f9c55653c9fae63e172a5fb250">nz::krnl::AveragePoolingBackward</a></div><div class="ttdeci">void AveragePoolingBackward(dim3 gridDim, dim3 blockDim, float *out, float *in, size_t pool_size, size_t stride, size_t padding, size_t batches, size_t channels, size_t H_in, size_t W_in, size_t H_out, size_t W_out)</div><div class="ttdoc">Kernel function to compute the gradient of average pooling during backpropagation.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l01484">OperationKernels.cu:1484</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a56f84e531825be8b2b0974c2488eb765"><div class="ttname"><a href="namespacenz_1_1krnl.html#a56f84e531825be8b2b0974c2488eb765">nz::krnl::ScalarAdd</a></div><div class="ttdeci">void ScalarAdd(dim3 gridDim, dim3 blockDim, float *out, float *in, float num, unsigned long long n)</div><div class="ttdoc">Kernel function to add a scalar to each element of a matrix on the GPU.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00196">OperationKernels.cu:196</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a5af716524e248c61f3dce227d8ef6e34"><div class="ttname"><a href="namespacenz_1_1krnl.html#a5af716524e248c61f3dce227d8ef6e34">nz::krnl::ScalarMul</a></div><div class="ttdeci">void ScalarMul(dim3 gridDim, dim3 blockDim, float *out, float *in, float num, unsigned long long n)</div><div class="ttdoc">Kernel function to perform scalar multiplication on the GPU.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00170">OperationKernels.cu:170</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a6c5a4b54442aab42df5afe8688e71596"><div class="ttname"><a href="namespacenz_1_1krnl.html#a6c5a4b54442aab42df5afe8688e71596">nz::krnl::SwishBackward</a></div><div class="ttdeci">void SwishBackward(dim3 gridDim, dim3 blockDim, float *A_grad, float *A, float *B, float *B_grad, unsigned long long n)</div><div class="ttdoc">Kernel function to compute the gradient of the Swish activation during backpropagation.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00359">OperationKernels.cu:359</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a73ceb77688c4008dc350fc87b99875aa"><div class="ttname"><a href="namespacenz_1_1krnl.html#a73ceb77688c4008dc350fc87b99875aa">nz::krnl::GlobalAvgPoolBackward</a></div><div class="ttdeci">void GlobalAvgPoolBackward(dim3 gridDim, dim3 blockDim, float *output, float *in, size_t batches, size_t channels, size_t height, size_t width)</div><div class="ttdoc">Kernel function to compute the gradient of global average pooling during backpropagation.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l01502">OperationKernels.cu:1502</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a7c061f5511c3ab9d36563757bd969ff7"><div class="ttname"><a href="namespacenz_1_1krnl.html#a7c061f5511c3ab9d36563757bd969ff7">nz::krnl::col2img</a></div><div class="ttdeci">void col2img(dim3 gridDim, dim3 blockDim, float *out, float *in, size_t H_out, size_t W_out, size_t C_out, size_t batches)</div><div class="ttdoc">Rearranges columnar data back into image format.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l01378">OperationKernels.cu:1378</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a7eade95ddcf48141d69bb19803b22d51"><div class="ttname"><a href="namespacenz_1_1krnl.html#a7eade95ddcf48141d69bb19803b22d51">nz::krnl::LeakyReLUBackward</a></div><div class="ttdeci">void LeakyReLUBackward(dim3 gridDim, dim3 blockDim, float *A_grad, float *A, float *B_grad, unsigned long long n, float alpha=0.01f)</div><div class="ttdoc">Kernel function to compute the gradient of the Leaky ReLU activation during backpropagation.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00330">OperationKernels.cu:330</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a8855f411733f7de29d013f4ad40096c9"><div class="ttname"><a href="namespacenz_1_1krnl.html#a8855f411733f7de29d013f4ad40096c9">nz::krnl::RectifiedLinearUnit</a></div><div class="ttdeci">void RectifiedLinearUnit(dim3 gridDim, dim3 blockDim, float *out, float *in, unsigned long long n)</div><div class="ttdoc">Kernel function to apply the Rectified Linear Unit (ReLU) activation on the GPU.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00237">OperationKernels.cu:237</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a8ec4524fdefd3d771c72e77e94281c88"><div class="ttname"><a href="namespacenz_1_1krnl.html#a8ec4524fdefd3d771c72e77e94281c88">nz::krnl::HadamardProduct</a></div><div class="ttdeci">void HadamardProduct(dim3 gridDim, dim3 blockDim, float *out, float *in1, float *in2, unsigned long long n)</div><div class="ttdoc">Kernel function to perform element-wise Hadamard product of two arrays.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l01165">OperationKernels.cu:1165</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a90d501e72361b7341f36394af0f27c74"><div class="ttname"><a href="namespacenz_1_1krnl.html#a90d501e72361b7341f36394af0f27c74">nz::krnl::TanhBackward</a></div><div class="ttdeci">void TanhBackward(dim3 gridDim, dim3 blockDim, float *A_grad, float *B, float *B_grad, unsigned long long n)</div><div class="ttdoc">Kernel function to compute the gradient of the Tanh activation during backpropagation.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00302">OperationKernels.cu:302</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a97cda6dfc6545efaee2b686eed9ae766"><div class="ttname"><a href="namespacenz_1_1krnl.html#a97cda6dfc6545efaee2b686eed9ae766">nz::krnl::MatrixAdd</a></div><div class="ttdeci">void MatrixAdd(dim3 gridDim, dim3 blockDim, float *a, float *b, float *c, unsigned long long n, size_t offset_c=0, size_t offset_a=0, size_t offset_b=0)</div><div class="ttdoc">Kernel function to perform matrix addition on GPU.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00026">OperationKernels.cu:26</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a997aa5460fd64fadf9b701fbf73e3fb2"><div class="ttname"><a href="namespacenz_1_1krnl.html#a997aa5460fd64fadf9b701fbf73e3fb2">nz::krnl::Swish</a></div><div class="ttdeci">void Swish(dim3 gridDim, dim3 blockDim, float *out, float *in, unsigned long long n)</div><div class="ttdoc">Kernel function to apply the Swish activation function on the GPU.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00344">OperationKernels.cu:344</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a9ac0590fbb5eb7f51b05da574e9845a8"><div class="ttname"><a href="namespacenz_1_1krnl.html#a9ac0590fbb5eb7f51b05da574e9845a8">nz::krnl::NgradCopy</a></div><div class="ttdeci">void NgradCopy(dim3 gridDim, dim3 blockDim, float *out, float *in, size_t n, const std::vector&lt; size_t &gt; &amp;offset_o, const std::vector&lt; size_t &gt; &amp;offset_i)</div><div class="ttdoc">Copies gradient data from one array to another with specified offsets.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l01264">OperationKernels.cu:1264</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_aa61cded4977bb2dc3720f7057cc2fb47"><div class="ttname"><a href="namespacenz_1_1krnl.html#aa61cded4977bb2dc3720f7057cc2fb47">nz::krnl::ElementwiseDivide</a></div><div class="ttdeci">void ElementwiseDivide(dim3 gridDim, dim3 blockDim, float *out, float *in1, float *in2, unsigned long long n, size_t offset_o=0, size_t offset_1=0, size_t offset_2=0)</div><div class="ttdoc">Kernel function to perform element-wise division of two arrays.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l01181">OperationKernels.cu:1181</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_aa84aa2397f4f5a09a96bef76726e46f0"><div class="ttname"><a href="namespacenz_1_1krnl.html#aa84aa2397f4f5a09a96bef76726e46f0">nz::krnl::TensorCoreGEMM</a></div><div class="ttdeci">void TensorCoreGEMM(float *A, float *B, float *C, unsigned long long M, unsigned long long N, unsigned long long K)</div><div class="ttdoc">Kernel function to perform fast matrix multiplication using Tensor Cores with half-precision (FP16) s...</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00885">OperationKernels.cu:885</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_aaf3c9cca114d003130ffa4354b4a24de"><div class="ttname"><a href="namespacenz_1_1krnl.html#aaf3c9cca114d003130ffa4354b4a24de">nz::krnl::RMSprop</a></div><div class="ttdeci">void RMSprop(dim3 gridDim, dim3 blockDim, float *data, float *v, float *grad, float lr, float beta, float eps, unsigned long long n)</div><div class="ttdoc">Kernel function to apply RMSprop optimization.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00747">OperationKernels.cu:747</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_abcc632e5a7104c1a28208e94a4ce6e28"><div class="ttname"><a href="namespacenz_1_1krnl.html#abcc632e5a7104c1a28208e94a4ce6e28">nz::krnl::MaxPooling</a></div><div class="ttdeci">void MaxPooling(dim3 gridDim, dim3 blockDim, float *output, float *position, float *input, size_t pool_size, size_t stride, size_t padding, size_t batches, size_t channels, size_t H_in, size_t W_in, size_t H_out, size_t W_out)</div><div class="ttdoc">Kernel function to perform max pooling on the GPU.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l01539">OperationKernels.cu:1539</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_abf927faf0950fbc215564c67b8ac57be"><div class="ttname"><a href="namespacenz_1_1krnl.html#abf927faf0950fbc215564c67b8ac57be">nz::krnl::BinaryCrossEntropy</a></div><div class="ttdeci">void BinaryCrossEntropy(dim3 gridDim, dim3 blockDim, size_t sharedMemSize, float *out, float *predict, float *real, unsigned long long n)</div><div class="ttdoc">Kernel function to compute the Binary Cross Entropy (BCE) loss between predicted and real values.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00686">OperationKernels.cu:686</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_ad136c8a6560a5305984ce0a31bea71bf"><div class="ttname"><a href="namespacenz_1_1krnl.html#ad136c8a6560a5305984ce0a31bea71bf">nz::krnl::Fill</a></div><div class="ttdeci">void Fill(dim3 gridDim, dim3 blockDim, float *data, float value, unsigned long long n, size_t offset=0)</div><div class="ttdoc">Kernel function to fill a data array with a given value.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l01153">OperationKernels.cu:1153</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_ad18a2b0efc0cdfc9cb861396ad4da53f"><div class="ttname"><a href="namespacenz_1_1krnl.html#ad18a2b0efc0cdfc9cb861396ad4da53f">nz::krnl::MatrixSub</a></div><div class="ttdeci">void MatrixSub(dim3 gridDim, dim3 blockDim, float *a, float *b, float *c, unsigned long long n, size_t offset_c=0, size_t offset_a=0, size_t offset_b=0)</div><div class="ttdoc">Kernel function to perform matrix subtraction on GPU.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00050">OperationKernels.cu:50</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_ada94b8c5c6e6d72132face63a3305624"><div class="ttname"><a href="namespacenz_1_1krnl.html#ada94b8c5c6e6d72132face63a3305624">nz::krnl::NAdam</a></div><div class="ttdeci">void NAdam(dim3 gridDim, dim3 blockDim, float *data, float *m, float *m_modified, float *v, float *grad, float lr, float beta1, float beta2, float eps, int t, unsigned long long n)</div><div class="ttdoc">Kernel function to apply NAdam optimization.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00793">OperationKernels.cu:793</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_adbafc409d57fa0a9d78ecac5bf7b10a3"><div class="ttname"><a href="namespacenz_1_1krnl.html#adbafc409d57fa0a9d78ecac5bf7b10a3">nz::krnl::Softmax</a></div><div class="ttdeci">void Softmax(dim3 gridDim, dim3 blockDim, float *out, float *in, float exp_sum_of_input, unsigned long long n, size_t offset=0)</div><div class="ttdoc">Kernel function to apply the Softmax function on the GPU.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00525">OperationKernels.cu:525</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_adc047e65307dbc711235f637227b7d10"><div class="ttname"><a href="namespacenz_1_1krnl.html#adc047e65307dbc711235f637227b7d10">nz::krnl::Recip</a></div><div class="ttdeci">void Recip(dim3 gridDim, dim3 blockDim, float *out, float *in, unsigned long long n)</div><div class="ttdoc">Kernel function to compute the reciprocal of each element of a matrix on the GPU.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00226">OperationKernels.cu:226</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_addaa377a94d007df2690043b08904e28"><div class="ttname"><a href="namespacenz_1_1krnl.html#addaa377a94d007df2690043b08904e28">nz::krnl::AveragePooling</a></div><div class="ttdeci">void AveragePooling(dim3 gridDim, dim3 blockDim, float *out, float *in, size_t pool_size, size_t stride, size_t padding, size_t batches, size_t channels, size_t H_in, size_t W_in, size_t H_out, size_t W_out)</div><div class="ttdoc">Kernel function to perform average pooling on the GPU.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l01431">OperationKernels.cu:1431</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_ae30a6e1de69588aa0c6eb8a5b8e6e826"><div class="ttname"><a href="namespacenz_1_1krnl.html#ae30a6e1de69588aa0c6eb8a5b8e6e826">nz::krnl::GeneralMatrixMul</a></div><div class="ttdeci">void GeneralMatrixMul(dim3 gridDim, dim3 blockDim, float *A, float *B, float *C, unsigned long long M, unsigned long long N, unsigned long long K, size_t offset_c=0, size_t offset_a=0, size_t offset_b=0)</div><div class="ttdoc">Kernel function to perform single-precision matrix multiplication on GPU using CUDA cores.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00103">OperationKernels.cu:103</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_ae45dbebceb76ddf82fa5e6b9df882e62"><div class="ttname"><a href="namespacenz_1_1krnl.html#ae45dbebceb76ddf82fa5e6b9df882e62">nz::krnl::Expand</a></div><div class="ttdeci">void Expand(dim3 gridDim, dim3 blockDim, float *out, float *in, size_t n, size_t total)</div><div class="ttdoc">Expands the input array into the output array with a specified total size.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l01290">OperationKernels.cu:1290</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_ae77920db6adf79a17dbfb1dbf1ab5656"><div class="ttname"><a href="namespacenz_1_1krnl.html#ae77920db6adf79a17dbfb1dbf1ab5656">nz::krnl::MSEBackward</a></div><div class="ttdeci">void MSEBackward(dim3 gridDim, dim3 blockDim, float *out, float *predict, float *real, unsigned long long n)</div><div class="ttdoc">Kernel function to compute the gradient of the Mean Squared Error (MSE) loss for backpropagation.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00629">OperationKernels.cu:629</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_aeb7d10939b25508e0b5db1fe44f4b467"><div class="ttname"><a href="namespacenz_1_1krnl.html#aeb7d10939b25508e0b5db1fe44f4b467">nz::krnl::Tanh</a></div><div class="ttdeci">void Tanh(dim3 gridDim, dim3 blockDim, float *out, float *in, unsigned long long n)</div><div class="ttdoc">Kernel function to apply the Tanh activation function on the GPU.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00289">OperationKernels.cu:289</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_aee8ca471aa260bd1fca5b1797e229f9f"><div class="ttname"><a href="namespacenz_1_1krnl.html#aee8ca471aa260bd1fca5b1797e229f9f">nz::krnl::ELUBackward</a></div><div class="ttdeci">void ELUBackward(dim3 gridDim, dim3 blockDim, float *A_grad, float *A, float *B_grad, unsigned long long n, float alpha=1.0f)</div><div class="ttdoc">Kernel function to compute the gradient of the ELU activation during backpropagation.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00388">OperationKernels.cu:388</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_aeec286d5351eee7061e151470adb4eef"><div class="ttname"><a href="namespacenz_1_1krnl.html#aeec286d5351eee7061e151470adb4eef">nz::krnl::StochasticGradientDescent</a></div><div class="ttdeci">void StochasticGradientDescent(dim3 gridDim, dim3 blockDim, float *data, float *grad, float lr, unsigned long long n)</div><div class="ttdoc">Kernel function to perform Stochastic Gradient Descent (SGD) optimization.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00642">OperationKernels.cu:642</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_aef9c028ed356b5684e103639bb23bcf0"><div class="ttname"><a href="namespacenz_1_1krnl.html#aef9c028ed356b5684e103639bb23bcf0">nz::krnl::HardSwish</a></div><div class="ttdeci">void HardSwish(dim3 gridDim, dim3 blockDim, float *out, float *in, unsigned long long n, float alpha=0.2f, float beta=0.5f)</div><div class="ttdoc">Kernel function to apply the Hard Swish activation function on the GPU.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00445">OperationKernels.cu:445</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_af7069a420e81babb49b1bc009333d053"><div class="ttname"><a href="namespacenz_1_1krnl.html#af7069a420e81babb49b1bc009333d053">nz::krnl::Negation</a></div><div class="ttdeci">void Negation(dim3 gridDim, dim3 blockDim, float *out, float *in, unsigned long long n)</div><div class="ttdoc">Kernel function to negate each element of a matrix on the GPU.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00209">OperationKernels.cu:209</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_af76ce6a930db4def5ceb51350af72f3c"><div class="ttname"><a href="namespacenz_1_1krnl.html#af76ce6a930db4def5ceb51350af72f3c">nz::krnl::MeanSquaredError</a></div><div class="ttdeci">void MeanSquaredError(dim3 gridDim, dim3 blockDim, size_t sharedMemSize, float *out, float *predict, float *real, unsigned long long n)</div><div class="ttdoc">Kernel function to compute the Mean Squared Error (MSE) loss between predicted and real values.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00615">OperationKernels.cu:615</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_afe3f38f788c735b7eb718443eb0fd094"><div class="ttname"><a href="namespacenz_1_1krnl.html#afe3f38f788c735b7eb718443eb0fd094">nz::krnl::Transpose</a></div><div class="ttdeci">void Transpose(dim3 gridDim, dim3 blockDim, float *d_A, float *d_B, unsigned int rows, unsigned int cols, size_t offset=0)</div><div class="ttdoc">Kernel function to transpose a matrix on the GPU.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00147">OperationKernels.cu:147</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_aff1f9f1bf9fb677024bd2b565fab9801"><div class="ttname"><a href="namespacenz_1_1krnl.html#aff1f9f1bf9fb677024bd2b565fab9801">nz::krnl::SigmoidBackward</a></div><div class="ttdeci">void SigmoidBackward(dim3 gridDim, dim3 blockDim, float *A_grad, float *B, float *B_grad, unsigned long long n)</div><div class="ttdoc">Kernel function to compute the gradient of the Sigmoid activation during backpropagation.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00277">OperationKernels.cu:277</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>
